Ansible এ block এবং rescue ব্যবহার করে ত্রুটি নিয়ন্ত্রণ (Error Handling) খুব সহজ এবং কার্যকরী হয়। block এবং rescue কিওয়ার্ডগুলোর মাধ্যমে আপনি প্লেবুকে এমনভাবে টাস্ক লিখতে পারেন, যাতে কোনো টাস্ক ব্যর্থ হলেও আপনি সেগুলোর উপর নিয়ন্ত্রণ রাখতে পারেন এবং ব্যর্থতার পরবর্তী অ্যাকশন নির্ধারণ করতে পারেন। এটি প্রায় প্রোগ্রামিং ভাষার try-catch মেকানিজমের মতো।
Ansible এ block
একটি ব্লক তৈরি করে যার মধ্যে একাধিক টাস্ক গ্রুপ করা যায়। এর সাথে rescue
এবং always
ব্যবহার করে ত্রুটি বা ব্যতিক্রম নিয়ন্ত্রণ করা যায়।
rescue
চালানো হবে।block
এর কোনো টাস্ক ব্যর্থ হয়, তখন rescue
ব্লকটি চালানো হয়। এটি সাধারণত ব্যাকআপ প্ল্যান বা এরর হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়।always
ব্লক সবসময় চালানো হয়, এটি block
বা rescue
সফল বা ব্যর্থ যাই হোক না কেন। এটি পরিষ্কার করার কাজ বা ফাইনাল টাস্কের জন্য ব্যবহার করা হয়।---
- name: Example of block and rescue
hosts: localhost
tasks:
- name: Main block
block:
- name: Try to create a file
file:
path: /tmp/example.txt
state: touch
- name: Simulate a failure
command: /bin/false
rescue:
- name: Handle the failure by creating a different file
file:
path: /tmp/rescue_file.txt
state: touch
always:
- name: Always clean up
file:
path: /tmp/temp_cleanup.txt
state: touch
Main block:
block
এর মধ্যে দুটি টাস্ক আছে। প্রথম টাস্কটি /tmp/example.txt
ফাইল তৈরি করছে।/bin/false
কমান্ড চালাচ্ছে, যা ইচ্ছাকৃতভাবে ব্যর্থ হবে।Rescue block:
block
এর কোনো টাস্ক ব্যর্থ হবে, তখন rescue
ব্লকটি চালু হবে। এখানে rescue
ব্লকে /tmp/rescue_file.txt
নামে একটি ফাইল তৈরি করা হয়েছে।Always block:
always
ব্লক সবসময় চালানো হবে, চূড়ান্ত কাজ বা ক্লিনআপ কাজ করার জন্য। এখানে /tmp/temp_cleanup.txt
ফাইলটি তৈরি করা হয়েছে।
---
- name: Install a package with error handling
hosts: localhost
tasks:
- name: Install nginx package
block:
- name: Try to install nginx
apt:
name: nginx
state: present
register: install_result
ignore_errors: yes
- name: Verify if nginx was installed
command: nginx -v
register: verify_result
rescue:
- name: Log installation failure
debug:
msg: "Nginx installation failed. Attempting to fix or clean up."
- name: Remove partially installed nginx
apt:
name: nginx
state: absent
always:
- name: Clean up temporary files if any
file:
path: /tmp/nginx_install.log
state: absent
nginx
প্যাকেজ ইনস্টল করা হয়েছে এবং ইনস্টলেশন যাচাই করা হয়েছে। ignore_errors: yes
দিয়ে ইনস্টলেশনের ত্রুটি উপেক্ষা করা হয়েছে যাতে ব্লকের পরবর্তী টাস্ক চালানো যায়।rescue
ব্লক চালানো হবে যেখানে ইনস্টলেশনের ব্যর্থতার কারণে কিছু পরিষ্কার বা ফিক্স করার ব্যবস্থা করা হয়েছে।/tmp/nginx_install.log
ফাইল (যদি কোনো লোগ সংরক্ষণ করা হয়) ক্লিনআপ করা হয়েছে।বৈশিষ্ট্য | বর্ণনা |
---|---|
Block | টাস্কগুলিকে গ্রুপ করে একসাথে চালায়। |
Rescue | Block ব্যর্থ হলে বিকল্প টাস্ক চালায়। |
Always | Block এবং Rescue সফল বা ব্যর্থ যাই হোক, সবসময় চালায়। |
Ansible এ block
, rescue
, এবং always
ব্যবহার করে প্লেবুকগুলোকে আরও ফ্লেক্সিবল এবং রেসিলিয়েন্ট করা যায়, যাতে টাস্ক ব্যর্থ হলেও উপযুক্তভাবে হ্যান্ডেল করা সম্ভব হয়।
আরও দেখুন...